草庐IT

php - Eloquent sortBy - 指定 asc 或 desc

全部标签

ruby-on-rails - 迁移 : t. 引用不允许指定索引名称

我在迁移中有以下内容:create_table:model_with_a_long_namedo|t|t.references:other_model_with_an_equally_long_name,index:trueend对于Postgres,这会产生一个名称太长的索引。有没有办法手动指定索引名称(不用单独添加整数列和索引)?类似下面的内容:create_table:model_with_a_long_namedo|t|t.references:other_model_with_an_equally_long_name,index:true,index_name:'model_

ruby - 如何使用 define_method 指定方法默认参数?

define_method可用于定义方法:define_method(:m)do|a|end等同于:defm(a)end但是,以下使用define_method的等效形式是什么:defm(a=false)end请注意,我需要能够在不提供任何参数的情况下调用m()。 最佳答案 这实际上就像您在Ruby1.9中所期望的那样工作!define_method:mdo|a=false|end如果您需要1.8兼容性,但不一定需要闭包来定义您的方法,请考虑使用带有字符串参数的class_eval并定期调用def:class_eval否则请按照ph

ruby - Ruby 是否提供了一种使用指定编码执行 File.read() 的方法?

在ruby​​1.9.x中,我们可以使用File.open('filename','r:iso-8859-1')指定编码。如果我直接将许多短文件读入字符串,我通常更喜欢使用单行File.read()。有什么方法可以直接指定编码,还是必须求助于以下方法之一?str=File.read('filename')str.force_encoding('iso-8859-1')或f=File.open('filename','r:iso-8859-1')s=''while(line=f.gets)s+=lineendf.close 最佳答案

ruby - RSpec:每次指定对具有不同参数的方法的多次调用

在rspec(1.2.9)中,指定一个对象每次都会收到对一个方法的多次调用的正确方法是什么?我问是因为这个令人困惑的结果:describeObjectdoit"passes,asexpected"dofoo=mock('foo')foo.should_receive(:bar).once.ordered.with(1)foo.should_receive(:bar).once.ordered.with(2)foo.bar(1)foo.bar(2)endit"fails,asexpected"dofoo=mock('foo')foo.should_receive(:bar).once.o

ruby-on-rails - 是否有与 PHP 的 isset() 等效的 Rails?

基本上只是检查以确保设置了url参数。我如何在PHP中做到这一点:if(isset($_POST['foo'])&&isset($_POST['bar'])){}这是RoR中isset()的粗略/最佳等价物吗?if(!params['foo'].nil?&&!params['bar'].nil?)end 最佳答案 更接近的匹配可能是#present?#returnstrueifnotnilandnotblankparams['foo'].present?还有一些其他的方法#returnstrueifnilparams['foo'].

ruby-on-rails - 以 DESC 排序集合

'event',:collection=>@events.sort_by(&:event_at)%>此代码显示按ASC排序的集合,但我想按DESC排序此集合。我怎样才能做到这一点? 最佳答案 如http://guides.rubyonrails.org/active_record_querying.html所述@events.order(event_at::desc) 关于ruby-on-rails-以DESC排序集合,我们在StackOverflow上找到一个类似的问题:

ruby - 如何使用 Ruby OptionParser 指定所需的开关(不是参数)?

我正在编写一个脚本,我想要一个带有值的--host开关,但是如果没有指定--host开关,我想要选项解析失败。我似乎不知道该怎么做。文档似乎只指定如何使参数值成为强制性的,而不是开关本身。 最佳答案 一种使用optparse的方法,可以在缺少开关时提供友好的输出:#!/usr/bin/envrubyrequire'optparse'options={}optparse=OptionParser.newdo|opts|opts.on('-f','--fromSENDER','usernameofsender')do|sender|op

ruby - 很好地格式化输出到控制台,指定选项卡的数量

我正在生成一个将信息输出到控制台的脚本。该信息是某种具有值的统计数据。非常像哈希。所以一个值的名称可能是8个字符长,另一个是3个字符。当我循环输出带有两个\t的信息时,一些列没有正确对齐。例如输出可能是这样的:longvaluename14short12little13tiny123421longnameagain912421我希望所有值都正确排列。现在我正在这样做:puts"#{value_name}-\t\t#{value}"对于长名称,我怎么能说只使用一个制表符呢?或者有其他解决方案吗? 最佳答案 假设您知道最大长度不超过20

ruby - 你的 Ruby 版本是 2.0.0,但是你的 Gemfile 指定了 2.1.0

当我尝试捆绑安装时,我收到以下消息:YourRubyversionis2.0.0,butyourGemfilespecified2.1.0在我的Gemfile中有以下内容:ruby'2.1.0'当我在控制台中运行ruby-v时,我得到:ruby2.1.0p0(2013-12-25revision44422)[x86_64-darwin12.0]Ruby2.1.0p0是什么意思?我的Gemfile中应该有什么版本,为什么错误告诉我我有Ruby版本2.0.0? 最佳答案 运行geminstallbundler或gemupdatebund

ruby-on-rails - 数据库配置没有指定适配器

当我尝试连接到mysql数据库时出现此错误。问题是该应用程序工作了数周,然后随机收到此消息。当我收到此错误消息时,应用程序无法重新连接到数据库,直到我重新启动它。我正在使用配置文件连接到数据库,并且指定了适配器...数据库配置不是在运行时生成的。你知道发生了什么事吗? 最佳答案 当我尝试运行命令行脚本(这里假设为“my_script”)时,发生了同样的错误。原因是:那里只有生产环境。我没有为命令行设置RAILS_ENV。因此,以下是我的解决方案:$RAILS_ENV=productionmy_script